package com.dmw.service;

import com.dmw.entity.DmItemComment;
import com.dmw.vo.FamilyPageVO.ItemInfoVO;
import com.dmw.vo.FamilyPageVO.QueryHotCityVO;
import com.dmw.vo.ImgVO.PageImgVO;
import com.dmw.vo.homePageVO.*;
import com.dmw.vo.itemInfoVO.ItemInfoOfItemIdVO;
import com.dmw.vo.itemInfoVO.ItemsOfItemIdVO;
import com.dmw.vo.itemInfoVO.ItemsPriceOfScheduleIdVO;
import com.dmw.vo.itemInfoVO.ScoreOfItemIdVO;
import com.dmw.vo.itemsListVO.SearchTypeVO;

import java.util.List;
import java.util.Map;


public interface ItemService {


    /**
     * 根据商品id返回商品详情页
     * from 商品详情页API 1
     * @param id
     * @return
     */
    List<ItemInfoOfItemIdVO> queryItemDetail(Long id) throws  Exception ;

    /**
     * 根据商品ID查询商品排期
     * from 商品详情页API 2
     * @param itemId
     * @return
     */
    List<ItemsOfItemIdVO> queryItemScheduler(Long itemId) throws  Exception ;

    /**
     * 根据商品排期查询商品价格
     * from 商品详情页API 3
     * @param scheduleId
     * @return
     */
    List<ItemsPriceOfScheduleIdVO> queryItemPrice(Long scheduleId) throws  Exception ;

    /**
     * 根据商品id查询剧评
     * from 商品详情页API 4
     * @param id
     * @return
     */
    List<ScoreOfItemIdVO> queryItemComment(Long id) throws  Exception ;

    /**
     * 添加剧评
     * from 商品详情页API 5
     * @param comment
     * @return
     */
   void commitItemComment(DmItemComment comment) throws  Exception ;


    /**
     * 分类查询轮播图
     * from 亲子首页 1
     * @param itemTypeId
     * @return
     */
    List<PageImgVO> querySlideShowPic(Long itemTypeId) throws  Exception;

    /**
     * 猜你喜欢接口
     * from 商品列表页 4
     * 推荐接口
     * from 商品列表页 6
     * 猜你喜欢接口
     * from 亲子首页API接口 2
     * 精彩聚焦接口
     * from 亲子首页API接口 3
     * 根据年龄段查询节目
     * from 亲子首页API接口 4
     * 根据热门城市查询热门排行
     * from 亲子首页API接口 6
     * 广告接口(图片为背景透明)
     * from 亲子首页API接口 8
     * @param map
     * @return
     * @throws Exception
     */
    List<ItemInfoVO> queryItemInfo(Map<String,Object> map) throws Exception;

    /**
     * 查询热门城市
     * from 亲子首页API接口 5
     * @return
     * @throws Exception
     */
    List<QueryHotCityVO> queryHotCity() throws Exception;

    /**
     * 商品搜索页查询商品分类列表
     * from 商品列表页 2
     * @param parent
     * @return
     */
    List<SearchTypeVO> queryItemType(Long parent) throws  Exception;


    /**
     * 获取所有的商品分类
     * from 首页API 1
     * @return
     */
    List<ItemTypeVO> queryAllType() throws  Exception;

    /**
     * 获取首页横向导航数据
     * from 首页API 2
     * @return
     */
    List<TransverseNavigationVO> queryTransverse() throws  Exception;

    /**
     * 首页轮播图接口
     * from 首页API 3
     * @return
     */
    List<PageImgVO> queryBanner() throws  Exception;

    /**
     * 今日推荐接口
     * from 首页API 4
     * @return
     */
    List<PageImgVO> queryTodayRecommend() throws  Exception;

    /**
     * 即将开售接口
     * from 首页API 5
     * @return
     */
    List<PageImgVO> queryToSaleItem() throws  Exception;

    /**
     * 首页返回不同楼层展示数据
     * from 首页API 6
     * @return
     */
    List<FloorShowVO> queryFloorItems() throws  Exception;

    /**
     * 不同分类排行
     * from 首页API 7
     * @return
     */
    List<DefaultTypeVO> queryHotItems(Long itemTypeId) throws  Exception;

    /**
     * 根据token返回用户信息
     * from 首页API 8
     * @return
     */
    List<UserInfoOfTokenVO> loadCurrentUserByToken(Long id) throws  Exception;
}

